From 8243b16ad79cb4965ab5314e53a20ef16b2af9c3 Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Sat, 7 Apr 2012 21:32:39 +0200 Subject: [PATCH] styleproperty: Save some memory Only create a new CssValue when we actually need one. --- gtk/gtkcssstylepropertyimpl.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/gtk/gtkcssstylepropertyimpl.c b/gtk/gtkcssstylepropertyimpl.c index 7dd1cf40b8..0528ae05cb 100644 --- a/gtk/gtkcssstylepropertyimpl.c +++ b/gtk/gtkcssstylepropertyimpl.c @@ -400,10 +400,20 @@ css_image_value_compute (GtkCssStyleProperty *property, GtkStyleContext *context, GtkCssValue *specified) { - GtkCssImage *image = _gtk_css_value_get_image (specified); + GtkCssImage *image, *computed; + + image = _gtk_css_value_get_image (specified); - if (image) - image = _gtk_css_image_compute (image, context); + if (image == NULL) + return _gtk_css_value_ref (specified); + + computed = _gtk_css_image_compute (image, context); + + if (computed == image) + { + g_object_unref (computed); + return _gtk_css_value_ref (specified); + } return _gtk_css_value_new_take_image (image); } -- 2.30.2